algorithmic javascript